package ace.cmp.data.api.annotation;

import java.lang.annotation.*;

/**
 * @author caspar
 * @date 2023/11/8 11:26 代表数据库的列
 */
@Target({ElementType.FIELD})
@Retention(RetentionPolicy.RUNTIME)
@Documented
public @interface Column {
  /**
   * 列名,默认使用实体字段名转：小写+下划线
   *
   * @return
   */
  String name() default "";

  /**
   * 自定义类型，为空则使用默认类型映射
   *
   * @return
   */
  String type() default "";

  /**
   * 可否为null
   * @return
   */
  boolean nullable() default false;

  /**
   * 默认值
   * @return
   */
  String defaultValue() default "";

  /**
   * 字符串长度
   *
   * @return
   */
  int length() default 255;

  /**
   * 单位长度
   *
   * @return
   */
  int decimalLength() default 2;

  /**
   * 分位长度
   *
   * @return
   */
  int decimalCentLength() default 2;
}
